package com.qifei.xmlg_backend.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 统计数据Mapper接口
 * </p>
 */
@Mapper
public interface StatisticsMapper {

    /**
     * 获取员工性别统计数据
     * @return 性别和对应的人数
     */
    @Select("SELECT gender, COUNT(*) as count FROM emp GROUP BY gender")
    List<Map<String, Object>> getEmpGenderStats();

    /**
     * 获取员工部门分布统计数据
     * @return 部门ID和对应的人数
     */
    @Select("SELECT dept_id, COUNT(*) as count FROM emp GROUP BY dept_id")
    List<Map<String, Object>> getEmpDeptStats();

    /**
     * 获取指定部门ID的员工数量
     * @param deptId 部门ID
     * @return 员工数量
     */
    @Select("SELECT COUNT(*) FROM emp WHERE dept_id = #{deptId}")
    int getEmpCountByDeptId(@Param("deptId") Integer deptId);

    /**
     * 获取员工入职时间统计数据（按月份）
     * @return 月份和对应的入职人数
     */
    @Select("SELECT MONTH(entrydate) as month, COUNT(*) as count FROM emp GROUP BY MONTH(entrydate) ORDER BY month")
    List<Map<String, Object>> getEmpEntryDateStats();
} 